package icu.yougan.trade.mapper;

import icu.yougan.trade.entity.IdleItem;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @Author:油柑
 * @changeByLyh
 * @Date:2024/5/18 22:20
 * @Version:v1.0.0
 * @Description:限制物品数据持久层
 **/
@Mapper
public interface IdleItemMapper {
    int deleteByPrimaryKey(Long id);

    int insert(IdleItem record);

    int insertSelective(IdleItem record);

    IdleItem selectByPrimaryKey(Long id);

    List<IdleItem> getAllIdleItem(Long userId);

    int countIdleItem(String findValue);
    int countAllIdleItem4Sort();

    int countIdleItemByLable(int idleLabel);

    int countIdleItemByStatus(int status);
    int countIdleItemByPrice(Double minPrice, Double maxPrice);

    List<IdleItem> findIdleItem(String findValue, int begin, int nums);
    List<IdleItem> findIdleItemByPriceSort(String sort, int begin, int nums);
    List<IdleItem> findIdleItemByLabel(int idleLabel, int begin, int nums);

    List<IdleItem> findIdleItemByLabelDetails(int idleLabelDetails,int begin,int nums);

    List<IdleItem> getIdleItemByStatus(int status, int begin, int nums);

    int updateByPrimaryKeySelective(IdleItem record);

    int updateByPrimaryKey(IdleItem record);

    List<IdleItem> findIdleByList(List<Long> idList);

    List<IdleItem> findIdleItemByPrice(Double minPrice, Double maxPrice, int begin, int nums);


    List<IdleItem> findIdleItemByMix(Double minPrice, Double maxPrice, Integer idleLabel, int begin, int nums);
    List<IdleItem> findIdleItemByMixDetails(Double minPrice, Double maxPrice, Integer idleLabelDetails, int begin, int nums);

    int countIdleItemByMix(Double minPrice, Double maxPrice, int idleLabel);
    List<IdleItem>getIdleLabel(int begin,int nums);
    List<IdleItem> findIdleItemByHot(int begin, int nums);
    IdleItem getIdleById(Long id);

    List<IdleItem> selectByDateRange(@Param("startDate") String startDate, @Param("endDate") String endDate);
}
